#ifndef IPLUGINFACTORY_H
#define IPLUGINFACTORY_H

#include "pluginextension_global.h"
#include "iplugingadget.h"

class IPluginGadget;

class PLUGINEXTENSIONSHARED_EXPORT IPluginFactory : public QObject
{
    Q_OBJECT
public:
    IPluginFactory(QString classId, QString name, QObject *parent = 0) :
            QObject(parent),
            m_classId(classId),
            m_name(name){}
    virtual ~IPluginFactory() {}
    virtual IPluginGadget *createGadget(QWidget *parent) = 0;
    QString classId() const { return m_classId; }
    QString name() const { return m_name; }

private:
    QString m_classId; // unique class id
    QString m_name; // display name, should also be unique

signals:

public slots:
};

#endif // IPLUGINFACTORY_H
